<?php namespace Common\Model;
use Hdphp\Model\Model;
/**
 * 图片模型
 */
class Picture extends Model{
		//标签表
		protected $table = 'picture';
		//自动验证(前提：表字段必须和表单一致)
		protected $validate = array(
				array('title','required','图片标题必须填写哦^_^',3,3),
				array('des','required','图片描述必须填写哦^_^',3,3),
				array('theme_id','required','图片主题必须选择哦^_^',3,3),
				array('sort','required','排序必须填写哦^_^',3,3),
				array('sort','num:0,65535','排序必须为数字哦^_^',3,3)
		);
		//自动完成【表单无法处理的字段就选择使用自动完成来操作】
		protected $auto=array(
				array('addtime','time','function',3,1),
				array('img','imgs','method',3,3)
		);
		
		//上传图片
		public function imgs(){
			//判断编辑没有修改图片
			if ($img = Q('post.img')) {
				//直接返回隐藏域内的图片地址
				return $img;
			}
			//文件路径
			$imgDir = 'Picture/' . date('ymd');
			//上传图片
			$upload = Upload::path($imgDir)->type('jpg,png,gif')->size(2000000)->make('img');
			//上传成功
			if ($upload) {
				//组合缩略图路径
				$imgPath =  $imgDir . '/' . 'img_' . $upload['0']['basename'];
				//缩略图处理，进行缩略并保存起来
				$thumbPath = Image::thumb($upload['0']['path'],$imgPath,400,400,6);
				//删除原图
				unlink($upload['0']['path']);
				return $thumbPath;
			}
			return '';
		}
		
		//添加
		public function  store(){
			//必须验证都通过才开始添加数据到各个表中
			if (!$this->create()) return false;
			//1.给acticle表添加数据
			//上传文件判断 4代表没有选择上传文件
			if ($_FILES) {
				//判断缩略图
				if ($_FILES['img']['error'] !=4) {
					if ($error = Upload::getError()) {
						//把上传的错误信息存入到Model的error属性中
						$this->error = $error;
						return false;
					}
				}
			}
			//添加
			$this->add();
			return true;
		}
		
		//编辑
		public function edit($pid){
			if (!$this->create()) return false;
			//上传文件
			if ($_FILES) {
				if ($_FILES['img']['error'] !=4) {
					if ($error = Upload::getError()) {
						//把上传的错误信息存入到Model的error属性中
						$this->error = $error;
						return false;
					}
				}
			}
			//删除原图操作
			$logoArr = $this->where(array('pid'=>$pid))->field('img')->find();
			$logo = Q('post.img');
			if ($logo != $logoArr['img']) {
				unlink($logoArr['img']);
			}
			//修改数据
			return $this->save();
		}
		
		//删除
		public function del($pid){
			$data = $this->where(array('pid' => $pid))->field('img')->find();
			if ($data['img']) {
				unlink($data['img']);
			}
			return $this->delete($pid);
		}
	
}